#!/bin/sh

USER=root
PASS=root
REMOTE_IP=172.20.0.2
TEMP_DIR=/tmp/diso

verificarArchivos()
{
	# Obtenemos los archivos a chequear del ftp server
	rm -rf ${TEMP_DIR}/${1}
	mkdir -p ${TEMP_DIR}/${1}
	echo Directorio ${2}/${1}

ftp -i -n $REMOTE_IP <<**
user $USER $PASS
cd ${2}/${1}
lcd ${TEMP_DIR}/${1}
mget ${ARCHIVOS}
bye
**

	# Ahora los comparamos con los locales
	for file in $ARCHIVOS; do
		ARCHIVO_REMOTO=${TEMP_DIR}/${1}/${file}
		ARCHIVO_LOCAL=${DIR_ACTUAL}/${1}/${file}

		if [ ! -f $ARCHIVO_REMOTO -o ! -f $ARCHIVO_LOCAL ]; then
			echo Error con los archivos.
			exit 1
		fi
		
		MD5_REMOTO=$(md5sum ${ARCHIVO_REMOTO})
		MD5_LOCAL=$(md5sum ${ARCHIVO_LOCAL})

		if [ "$MD5_LOCAL" != "$MD5_REMOTO" ]; then
			diff -u ${ARCHIVO_REMOTO} ${ARCHIVO_LOCAL}
		fi
	done

	rm -rf ${TEMP_DIR}/${1}
}

DIR_ACTUAL=$(pwd)

DIR=include
cd $DIR
ARCHIVOS=$(ls *.c *.h 2> /dev/null | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr
cd ..

DIR=include/minix
cd $DIR
ARCHIVOS=$(ls *.c *.h 2> /dev/null | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr
cd ../..

DIR=kernel
cd $DIR
ARCHIVOS=$(ls *.c *.h | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr/src
cd ..

DIR=mm
cd $DIR
ARCHIVOS=$(ls *.c *.h | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr/src
cd ..

DIR=lib/posix
cd $DIR
ARCHIVOS=$(ls *.c Makefile | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr/src
cd ../..

DIR=lib/syscall
cd $DIR
ARCHIVOS=$(ls *.s Makefile | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr/src
cd ../..

DIR=lib/syslib
cd $DIR
ARCHIVOS=$(ls *.c Makefile | tr "\t" " " | tr "\n" " ")
verificarArchivos $DIR /usr/src
cd ../..
